home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HKMAIN.BAS Copyrigit(C) T.Komura / 家計簿システムHK /
- 30 ' / Version 1 /
- 31 ' Version 1.0 1993.01.01 公開バージョン / MAINプログラム /
- 32 ' 1.1 1993.07.26
- 100 '------------------------------------------------------------------
- 150 DIM CFI$(15)
- 160 GOSUB *CONFIGファイルチェック
- 170 'LOCATE 0,5
- 175 'PRINT PRGDRV$,DATDRV$,RAMDRV$,TIFDRV$,FMBDRV$,SNDMF,SNDDRV$,SWAIT
- 180 'FOR II=1 TO 15:PRINT CFI$(II):NEXT II:STOP
- 190 '
- 193 VERN$="1.1" 'バージョンNo.
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 SCREEN@ 0 :COLOR 7,0,0,4:CLS:CONSOLE 0,24,0:MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V6":DATX$=DATE$
- 260 DIM XB1(2,5),XB2(2,5),YB1(2,5),YB2(2,5),BST(2,5)
- 265 DIM DYN$(20),DRM$(20)
- 270 DIM CUTN#(795)
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 330 'CLS:COLOR 7:PRINT int((int(((630-234+1)+7)/8)*(97-71+1)*4+8-1)/8)
- 370 ON ERROR GOTO *ERROR
- 380 '
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *表紙表示
- 1010 MESN=21:GOSUB *SNDMSG
- 1020 GOSUB *本日の日付
- 1035 MOUSE 1,320,64,1
- 1040 GOSUB *HLIDXファイルチェック
- 1100 *メイン選択
- 1110 '
- 1130 SWPASS=1:G=1:GOSUB *マウスボタン選択
- 1145 IF SWNO>5 THEN *メイン選択
- 1150 ON SWNO GOTO *S01,*S02,*S03,*S04,*S05
- 1160 GOTO 1100:STOP
- 2000 *S01
- 2020 G=1:B=1:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 2030 CHAIN "HKIN.BAS"
- 2100 *S02
- 2120 G=1:B=2:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 2130 CHAIN "HKSRCH.BAS"
- 2200 *S03
- 2220 G=1:B=3:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 2230 CHAIN "HKANLY.BAS"
- 2300 *S04
- 2320 G=1:B=4:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 2330 CHAIN "HKCFG.BAS"
- 3390 '
- 3490 '
- 8940 '
- 9000 *S05:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=5:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 9110 MESN=6:GOSUB *SNDMSG
- 9120 FOR II=1 TO 5000:NEXT II
- 9130 MOUSE 5:GOSUB *FADEOUT
- 9140 SHELL "cd \"
- 9150 SYSTEM
- 9160 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG :'END
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%:WAIT SWAIT
- 11150 *RETURN_SNDMSG :RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "GOKRO1" :' 4 ごくろうさん
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "OMATA" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12045 *週検索
- 12050 DATA "日",2,"月",0,"火",0,"水",0,"木",0,"金",0,"土",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12100 *YMDIN ' V2.0 1991.07.21
- 12110 LX=XYMD:LY=YYMD:LC=CYMD:LL=4:LM$=INYR$:LINS=0
- 12120 LOCATE LX,LY:COLOR BYMD:PRINT " 年 月 日";
- 12130 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INYR$=LMG$
- 12140 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
- 12145 YR=VAL(INYR$)
- 12150 LX=XYMD+7:LY=YYMD:LC=CYMD:LL=2:LM$=INMN$:LINS=0
- 12160 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INMN$=LMG$
- 12170 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
- 12175 MN=VAL(INMN$):IF MN<1 OR MN>12 THEN BEEP:GOTO 12160
- 12180 LX=XYMD+11:LY=YYMD:LC=CYMD:LL=2:LM$=INDY$:LINS=0
- 12190 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INDY$=LMG$
- 12200 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
- 12205 DY=VAL(INDY$):IF DY<1 OR DY>31 THEN BEEP:GOTO 12190
- 12210 RETURN
- 12220 '
- 12450 *WEEKN :'////////// 週NO.検索
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN-1:READ DN:MDN=MDN+DN:NEXT IWEKN
- 12515 READ MNDN:'当月の日数
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 13000 '/////////////////////////////////////////////////////////////////
- 13001 ' LKEYIN v1.1a 全角文字移動改良 1993.02.12 T.Komura
- 13002 '--------- v1.2 挿入モードの変更他全面bugFIX 1993.08.04 T.Komura
- 13003 '
- 13010 *LKEYIN :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
- 13011 ' 入力 = LX,LY : 表示開始座標 出力 = LMG$ : 入力後の文字列
- 13012 ' LM$ : 初期文字列
- 13013 ' LC : 表示文字色
- 13014 ' LL : 最大文字数
- 13015 ' LINS : 挿入モード=1
- 13016 '
- 13020 LCSRCL=1:LLINCL=6
- 13030 ' CR MR ML INS DEL BS CAN
- 13040 LMSX=MOUSE(0):LMSY=MOUSE(1):MOUSE 5 :'v1.1a
- 13050 CC$=CHR$(&H0D,&H1C,&H1D,&H12,&H7F,&H08,&H18)
- 13060 LMG$=SPACE$(LL):LMGD$=SPACE$(LL)
- 13070 LA$=INKEY$:IF LA$<>"" THEN 13070
- 13080 IF LINS=1 THEN CWDT=1 ELSE CWDT=7
- 13090 LCSR=0:LCSRX=LCSR:GOSUB *LCSRDX
- 13100 LOCATE LX,LY:COLOR LC:PRINT LM$ ' ・・・・・・・・・・ 初期文字列表示
- 13110 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
- 13120 LMX$=LEFT$(LM$+SPACE$(LL),LL)
- 13130 GOSUB *LMREAD
- 13140 *IN1C:' ・・・・・・・・・・ 1 文字入力
- 13150 LA$=INKEY$:IF LA$="" THEN 13150
- 13160 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
- 13170 IF CLA=0 THEN 13190
- 13180 ON CLA GOTO *CR,*MR,*ML,*INS,*DEL,*BS,*CAN
- 13190 IF KANF=1 THEN *KANJI
- 13200 IF ALA<&H20 THEN BEEP:GOTO *IN1C
- 13210 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
- 13220 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
- 13230 GOTO *KANJI
- 13240 *ANK :' ・・・・・・・・・・ ANK 文字入力
- 13250 IF LINS=1 THEN 13270
- 13260 MID$(LMX$,LCSR+1,1)=LA$:GOTO 13280
- 13270 LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
- 13280 GOSUB *LCSRINC
- 13290 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13300 GOTO *IN1C
- 13310 *KANJI :' ・・・・・・・・・・ 漢字文字入力
- 13320 ON KANF+1 GOTO 13330,13360
- 13330 KANF=1:KANW$="":KANW$=LA$
- 13340 IF LCSR+1>=LL THEN KANF=0:BEEP
- 13350 GOSUB *LCSRD:GOTO *IN1C
- 13360 KANF=0:KANW$=KANW$+LA$
- 13370 IF LINS=1 THEN 13390
- 13380 MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13400
- 13390 LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
- 13400 GOSUB *LCSR2INC
- 13410 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13420 GOTO *IN1C
- 13430 *CR :GOSUB *LMREAD:GOSUB *LCSRDX '////////// End
- 13440 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
- 13450 MOUSE 0: MOUSE 1,LMSX,LMSY,1 :'v1.1a
- 13460 RETURN:'----------------------------------------------------------
- 13470 *MR :GOSUB *LMREAD2 '////////// Right
- 13480 IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *IN1C
- 13490 GOSUB *LCSRINC :GOTO *IN1C
- 13500 *ML :GOSUB *LMREAD2 '////////// Left
- 13510 IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *IN1C
- 13520 GOSUB *LCSRDEC :GOTO *IN1C
- 13530 *INS:GOSUB *LCSRDX:LINS=1-LINS '////////// Insert
- 13540 IF LINS=1 THEN CWDT=1 ELSE CWDT=7
- 13550 GOSUB *LCSRDX :GOTO *IN1C
- 13560 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
- 13570 IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
- 13580 LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+" "
- 13590 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13600 *BS :GOSUB *LMREAD '////////// BackSpace
- 13610 IF LCSR=0 THEN GOTO *IN1C
- 13620 IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13640
- 13630 GOSUB *LCSRDEC :LDEF=1:GOTO 13640
- 13640 LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+" "
- 13650 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13660 *CAN :LMX$=SPACE$(LL) '////////// Clear
- 13670 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
- 13680 GOSUB *LMREAD :GOTO *IN1C
- 13690 *LMREAD: '////////// Disp Char Read
- 13700 LMGFX$=MID$(LMGDX$,LCSR+1,1)
- 13710 IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
- 13720 *LMREAD1:LMGD$=""
- 13730 FOR II=1 TO KLEN(LMX$)
- 13740 LMG=KTYPE(LMX$,II)
- 13750 IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
- 13760 LMGD$=LMGD$+LMD$
- 13770 NEXT II
- 13780 IF LEN(LMGD$)<=LL THEN 13800
- 13790 LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
- 13800 IF RIGHT$(LMGD$,1)<>"1" THEN 13820
- 13810 MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
- 13820 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
- 13830 IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
- 13840 LMG$=LMX$:LMGDX$=LMGD$
- 13850 RETURN
- 13860 *LCSRD :LXC=8*(LX+LCSR) :LYC=LY*19:GOSUB *LCSRL: '//// Csr Disp
- 13870 *LCSRDX:LXC=8*(LX+LCSRX):LYC=LY*19:GOSUB *LCSRL: '//// Csr Erace
- 13880 LCSRX=LCSR:RETURN
- 13890 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+14),XOR,LCSRCL,BF:RETURN
- 13900 *LCSRINC :LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1
- 13905 GOSUB *LCSRD:RETURN
- 13910 *LCSR2INC:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2
- 13915 GOSUB *LCSRD:RETURN
- 13920 *LCSRDEC :LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0
- 13925 GOSUB *LCSRD:RETURN
- 13930 *LCSR2DEC:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2
- 13935 GOSUB *LCSRD:RETURN
- 13940 *LMXDSP :LOCATE LX,LY:COLOR LC:PRINT LMX$;:RETURN
- 13950 '-------------------------------------------------------------------
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=572:YCLK0=22:CLKR=16:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR-8)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR-8)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR-2)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR-2)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 16000 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19350 LOCATE 2,23:COLOR 2,0
- 19355 PRINT SPACE$(77);
- 19359 LOCATE 2,23:COLOR 2,0
- 19360 PRINT ERMES$;"[実行]キーを押してね!";
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LOCATE 3,23:COLOR 6,0
- 19410 PRINT "エラー処理を終わります。";SPACE$(52);
- 19420 RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "DOQSO.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20105 PLAY "L16O7C<BAG>C<BAGR2>C<BAG>C<G>L4C"
- 20140 'RANDOMIZE TIME/3
- 20155 LOAD@ TIFDRV$+"\MAINb.tif",(0,0)
- 20160 INTERVAL ON
- 20180 RETURN
- 20190 '
- 20200 *HLIDXファイルチェック
- 20210 GOSUB *HKIOPN:CLOSE
- 20220 IF IR>0 THEN RETURN
- 20230 LOCATE 2,22:COLOR 6
- 20235 PRINT "インデックスファイルがありません。家計簿システム用のディスクを作成しますか?";
- 20240 CMES$="家計簿データディスク作成":GOSUB *確認
- 20245 LOCATE 2,22:PRINT SPACE$(76);
- 20250 ON SWNO GOTO 20260,*S04
- 20260 GOSUB *ファイル年月入力
- 20300 GOSUB *新規ファイル作成
- 20310 RETURN
- 20390 '
- 20400 *ファイル年月入力
- 20410 LOCATE 2,22:COLOR 7,0
- 20420 PRINT "何年何月の家計簿ファイルを作成しますか? ";
- 20430 SYMBOL(8*54,22*19)," 年 月",1,1,7,,,&H01
- 20440 GOSUB *本日の日付2
- 20450 YR$=TY$:MN$=TM$:LINS=0
- 20470 LM$=YR$:LL=4:LC=5:LX=54:LY=22:GOSUB *LKEYIN
- 20475 YR$=LMG$:LINS=0
- 20480 LM$=MN$:LL=2:LC=5:LX=61:LY=22:GOSUB *LKEYIN
- 20485 MN$=LMG$
- 20510 LOCATE 2,22:COLOR 7,0
- 20520 PRINT YR$;"年";MN$;"月の家計簿ファイルを作成します。";
- 20540 RETURN
- 20550 '
- 20700 *新規ファイル作成
- 20760 CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
- 20770 GOSUB *確認
- 20780 ON SWNO GOTO 20800,*S04
- 20800 MESN=24:GOSUB *SNDMSG
- 20810 IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
- 20820 RI=IR+1:GOSUB *HKIPUT
- 20830 DEV$=SPACE$(64):DDM$=SPACE$(32):'------------ファイル作成
- 20835 FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(32):NEXT JJ
- 20840 FOR RDY=1 TO 31
- 20845 LOCATE 70,22:COLOR 4:PRINT RIGHT$(STR$(RDY),2);" / 31";
- 20850 GOSUB *HKDPUT
- 20860 NEXT RDY:MESN=14:GOSUB *SNDMSG:LOCATE 70,23:PRINT SPACE$(8);
- 20870 RETURN
- 20880 '
- 20900 STOP
- 21000 *本日の日付2
- 21010 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 21020 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 21030 TY$=RIGHT$(STR$(TY),4)
- 21040 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 21050 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 21100 RETURN
- 21110 '
- 22200 *本日の日付
- 22210 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 22212 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 22214 TY$=RIGHT$(STR$(TY),4)
- 22220 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 22230 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 22250 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
- 22260 TYMD$=TY$+"年"+TM$+"月"+TD$+"日"+" 曜日"
- 22265 COLOR 7,0:LOCATE 46,1:PRINT TYMD$
- 22270 COLOR CW:LOCATE 61,1:PRINT WKM$
- 22280 RETURN
- 22290 '
- 22630 '
- 22900 '------------------------------------------------------------------
- 30130 *ボタン座標読み取り
- 30140 RESTORE *ボタン座標:READ SWGN
- 30150 FOR G=1 TO SWGN
- 30160 READ SWN(G),SMX(G),SMY(G),SMW(G)
- 30170 FOR B=1 TO SWN(G)
- 30180 READ XB1(G,B),XB2(G,B),YB1(G,B),YB2(G,B)
- 30190 NEXT B
- 30200 NEXT G
- 30210 RETURN
- 30220 '
- 30230 *ボタンON_OFF表示
- 30240 IF BST(G,B)=1 THEN BSC=7:BSB=0:BSA=2:GOTO 30260
- 30250 BSC=0:BSB=7:BSA=5
- 30260 CONNECT(XB1(G,B ),YB2(G,B) )-(XB2(G,B) ,YB2(G,B) )-(XB2(G,B ),YB1(G,B) ),BSC,PSET
- 30270 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB2(G,B)-1,YB2(G,B)-1)-(XB2(G,B)-1,YB1(G,B)+1),BSC,PSET
- 30280 CONNECT(XB1(G,B) ,YB2(G,B) )-(XB1(G,B) ,YB1(G,B) )-(XB2(G,B) ,YB1(G,B) ),BSB,PSET
- 30290 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB1(G,B)+1,YB1(G,B)+1)-(XB2(G,B)-1,YB1(G,B)+1),BSB,PSET
- 30300 LINE(XB1(G,B)+4,YB1(G,B)+4)-(XB1(G,B)+6,YB1(G,B)+5),PSET,BSA,BF
- 30305 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT 16
- 30310 RETURN
- 30320 '
- 30330 *マウスボタン選択
- 30340 SWERC=0
- 30350 IF MOUSE(2,0)=0 THEN 30350
- 30360 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):SWNO=0
- 30370 FOR IMS=1 TO SWN(G)
- 30380 IF (X_M>XB1(G,IMS) AND X_M<XB2(G,IMS)) ELSE 30410
- 30390 IF (Y_M>YB1(G,IMS) AND Y_M<YB2(G,IMS)) ELSE 30410
- 30400 SWNO=IMS:IMS=SWN(G)+1
- 30410 NEXT IMS:FOR IM=1 TO 500:NEXT IM
- 30430 IF SWNO=0 AND SWERC>5 THEN MESN=12:GOSUB *SNDMSG :GOTO 30350
- 30440 IF SWNO=0 THEN SMSGPLAY 3:SWERC=SWERC+1:GOTO 30350
- 30460 SWPASS=0
- 30470 RETURN
- 30480 '
- 31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
- 31010 FOR II=0 TO 15
- 31020 PALETTE II,[16*II,16*II,16*II]
- 31030 NEXT II
- 31040 FOR II=0 TO 255 STEP 5:WAIT SWAIT/50
- 31050 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
- 31054 PALETTE JJ,[KK,KK,KK]
- 31056 NEXT JJ
- 31060 NEXT II
- 31070 RETURN
- 31080 '
- 31200 *確認
- 31205 LOCATE 27,3:PRINT SPACE$(52)
- 31210 GET@A(214,50)-(630,79),CUTN#
- 31220 LOAD@ TIFDRV$+"\CAUTION2.TIF",(214,50)
- 31230 FOR II=1 TO 4
- 31232 LOCATE 40,3:COLOR 6:PRINT CMES$;:'28chr
- 31234 WAIT SWAIT/10
- 31236 LOCATE 40,3:PRINT SPACE$(28)
- 31237 WAIT SWAIT/10
- 31238 NEXT II
- 31239 LOCATE 40,3:COLOR 7:PRINT CMES$;:MESN=19:GOSUB *SNDMSG
- 31240 G=2:GOSUB *マウスボタン選択
- 31245 G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 31250 LOCATE 40,3:PRINT SPACE$(28)
- 31260 FOR II=1 TO 1000:NEXT II
- 31270 PUT@A(214,50)-(630,79),CUTN#
- 31272 'GOSUB *日付表示
- 31275 RETURN
- 31280 '
- 35000 *HKIOPN:'---------- インデックスファイルオープン
- 35005 DRV$=LEFT$(DATDRV$,2)
- 35010 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35020
- 35015 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35020 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 35030 OPEN "R",#2,FLN$
- 35040 FIELD #2,6 AS I$(1),32 AS I$(2)
- 35050 IR=LOF(2)
- 35060 RETURN
- 35070 '
- 35100 *HKDOPN:'---------- 家計簿データファイルオープン
- 35105 DRV$=LEFT$(DATDRV$,2)
- 35110 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35120
- 35115 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35120 FLN$=DRV$+"(768)"+PATH$+"\HL"+IYM$+".DAT"
- 35130 OPEN "R",#1,FLN$
- 35140 FIELD #1,64 AS D$(1),10*16 AS D$(2),32*4 AS D$(3),32*4 AS D$(4),32*4 AS D$(5),32*4 AS D$(6),32 AS D$(7)
- 35150 AR=LOF(1)
- 35160 RETURN
- 35170 '
- 36100 *HKIPUT:'---------- インデックスファイル作成
- 36110 GOSUB *HKIOPN
- 36120 LSET I$(1)=IYM$
- 36130 LSET I$(2)=IMK$
- 36140 PUT #2,RI
- 36150 CLOSE #2
- 36160 RETURN
- 36170 '
- 36300 *HKDPUT:'---------- 家計簿データ書き込み
- 36310 GOSUB *HKDOPN
- 36320 R=RDY
- 36330 LSET D$(1)=DEV$
- 36340 DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II ):NEXT II:LSET D$(2)=DX$
- 36342 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
- 36343 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
- 36344 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
- 36345 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
- 36346 LSET D$(7)=DDM$
- 36350 PUT #1,R
- 36360 CLOSE #1
- 36370 RETURN
- 36380 '
- 37190 '
- 37290 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック' V1.1 1993.08.04
- 39020 ' FOR HK T.Komura
- 39030 OPEN "R",#1,"(1)HK.CFG"
- 39040 FIELD #1,1 AS D$
- 39050 IF LOF(1)=0 THEN *CFGFE1
- 39060 CLOSE
- 39070 OPEN "I",#1,"HK.CFG"
- 39080 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
- 39090 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
- 39100 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
- 39110 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$
- 39120 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
- 39130 GOSUB *CFGREAD :'-- SNDMF
- 39140 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39150 SNDMF=VAL(RIGHT$(CFG$,1))
- 39160 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
- 39170 GOSUB *CFGREAD :'-- SWAIT
- 39180 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39190 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39200 FOR II=1 TO 15
- 39210 GOSUB *CFGREAD:CFI$(II)=CFG$
- 39220 NEXT II
- 39230 GOSUB *CFGREAD :'-- DICIF
- 39240 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39250 DICIF=VAL(RIGHT$(CFG$,1))
- 39260 GOSUB *CFGREAD :'-- DICSF
- 39270 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39280 DICSF=VAL(RIGHT$(CFG$,1))
- 39290 GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$
- 39300 CLOSE
- 39310 RETURN
- 39320 '---------------------------------------------
- 39330 *CFGFE1
- 39340 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39350 CLOSE:WAIT 100:SYSTEM
- 39360 *CFGFE2
- 39370 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
- 39380 CLOSE:WAIT 100:SYSTEM
- 39390 *CFGFE3
- 39400 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39410 CLOSE:WAIT 100:SYSTEM
- 39420 *CFGREAD
- 39430 IF EOF(1)<>0 THEN *CFGFE3
- 39440 LINE INPUT #1,CFG$
- 39450 IF LEFT$(CFG$,1)="/" THEN 39430
- 39460 RETURN
- 39470 '//////////////////////////////////////////////////
- 39480 '
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 2 'SWGN スイッチグループ数
- 40090 '/////////////////////////////
- 40100 '-------------------- メインメニュースイッチグループ
- 40110 ' SWN(G),SMX,SMY,SMW
- 40120 DATA 5 ,0.8,0.8, 0
- 40130 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40140 DATA 312,392, 42, 67',"記入・編集",0
- 40150 DATA 393,472, 42, 67'," 検 索 ",0
- 40160 DATA 473,552, 42, 67'," 分 析 ",0
- 40170 DATA 553,591, 42, 67'," 設 定 ",2
- 40180 DATA 592,630, 3, 41'," end ",2
- 40500 '-------------------- スイッチグループ[2]
- 40510 ' SWN(G),SMX,SMY,SMW
- 40520 DATA 2 ,0.8,0.8, 0
- 40530 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40540 DATA 552,583, 56, 73'," OK ",1 01
- 40550 DATA 584,615, 56, 73'," NG ",1 02
- 60000 '
- 60010 ' 座標確認 DEBUG ROUTINE
- 60020 '
- 60030 MOUSE 0:MOUSE 1,0,0,1
- 60040 IF MOUSE(2,1)<>0 THEN STOP
- 60050 IF MOUSE(2,0)=0 THEN 60050
- 60060 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60070 LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
- 60080 GOTO 60040
- 61000 '
-